home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-01
/
tty.zip
/
TTYIO.INC
< prev
Wrap
Text File
|
1992-03-11
|
3KB
|
171 lines
; Written by Chris Sokol
DEBUG EQU 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Constant equates ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BA300 EQU 000h
BA1200 EQU 001h
BA2400 EQU 002h
BA4800 EQU 003h
BA9600 EQU 004h
BA19200 EQU 005h
BA38400 EQU 006h
BA57600 EQU 007h
BA115200 EQU 008h
EOI EQU 20h
ERRbhand EQU 0ffffh
ERRbio EQU 0fffeh
ERRbirq EQU 0fffdh
ERRbtype EQU 0fffch
ERRnbuff EQU 0fffbh
ERRqfull EQU 0fffah
IDPend EQU 001h
IDMask EQU 006h
IDMSR EQU 000h
IDTX EQU 002h
IDRX EQU 004h
IDLSR EQU 006h
IEDATA EQU 001h
IETHRE EQU 002h
IELSR EQU 004h
IEMSR EQU 008h
LCWLen0 EQU 001h
LCWLen1 EQU 002h
LCStop EQU 004h
LCParEn EQU 008h
LCParEv EQU 010h
LCParSt EQU 020h
LCSBrk EQU 040h
LCDLAB EQU 080h
LSData EQU 001h
LSOver EQU 002h
LSPari EQU 004h
LSFram EQU 008h
LSBreak EQU 010h
LSHREmp EQU 020h
LSSREmp EQU 040h
MAX_TTYS EQU 8
MCDTR EQU 001h
MCRTS EQU 002h
MCOUT1 EQU 004h
MCOUT2 EQU 008h
MCLOOP EQU 010h
MOCW1 EQU 021h
MOCW2 EQU 020h
MSDCTS EQU 001h
MSDDSR EQU 002h
MSTERI EQU 004h
MSDRLSD EQU 008h
MSCTS EQU 010h
MSDSR EQU 020h
MSRI EQU 040h
MSRLSD EQU 080h
RXchar EQU 000h
RXlins EQU 001h
RXmdms EQU 002h
RXhinv EQU 0feh
RXndat EQU 0ffh
SOCW1 EQU 0a1h
SOCW2 EQU 0a0h
THFhfctl EQU 00001h
THFhwait EQU 00002h
THFopen EQU 00004h
THFxfctl EQU 00008h
THFxmit EQU 00010h
THFxwait EQU 00020h
TXchar EQU 000h
TXbaud EQU 001h
TXhwfc EQU 002h
TXlinc EQU 003h
TXmdmc EQU 004h
TXxofc EQU 005h
UATxBuf EQU 00000h
UARxBuf EQU 00000h
UADvLsb EQU 00000h
UADvMsb EQU 00001h
UAIntEn EQU 00001h
UAIntId EQU 00002h
UALiCtl EQU 00003h
UAMdCtl EQU 00004h
UALiSta EQU 00005h
UAMdSta EQU 00006h
UAHCR EQU 00007h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Structures ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TTYBuf STRUC
TBbuff DD ?
TBin DW ?
TBout DW ?
TBsize DW ?
TTYBuf ENDS
TTYHand STRUC
THflags DW ?
THhand DW ?
THioaddr DW ?
THirqno DW ?
THlinc DB ?
THlins DB ?
THmdmc DB ?
THmdms DB ?
THnxtirq DW ?
THprvirq DW ?
THrxbuf TTYBuf <>
THselect DW ?
THtxbuf TTYBuf <>
TTYHand ENDS
TTYIrq STRUC
TIhead DW ?
TIoldvec DD ?
TItail DW ?
TTYIrq ENDS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Macros ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
IVEC_NO = 0
jmps MACRO where
jmp short where
ENDM
GenIVec MACRO ivnum
IVec&ivnum:
push si
lea si, IrqPtrs + (ivnum * SIZE TTYIrq)
jmp IntHand
ENDM
GenIVIdx MACRO ivnum
DW IVec&ivnum
ENDM
UAddr MACRO off
mov dx, ds:[si].THioaddr
IF off
add dx, off
ENDIF
ENDM
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;